<?php

namespace app\controller;

use app\BaseController;
use app\pub\ErrJson;
use app\pub\Ants4PHP;
use think\facade\Db;
use think\Request;

/**
 * 分类管理
 * Class Classify
 * @package app\controller
 */

class Classify extends BaseController{

    /**
     * 获取所有
     * @param Request $request
     */
    public function getAll(Request $request){
        $uniacid = $request->header('uniacid');
        $list = Db::table('ims_zst_marketing_classify')
            ->where('uniacid',$uniacid)
            ->select();
        return ErrJson::success_json('');
    }

    /**
     * 根据父ID查询子ID
     * @param Request $request
     */
    public function getAllByFid(Request $request,$fid){
        $uniacid = $request->header('uniacid');
        $list = Db::table('ims_zst_marketing_classify')
            ->where('uniacid',$uniacid)
            ->where('fid',$fid)
            ->order('sort', 'desc')
            ->select();
        return ErrJson::success_json($list);
    }

    /**
     * 添加
     * data参数说明
     * @param id 如果有ID那么是修改，没有ID事新增
     * @param name 名称
     * @param info 简介
     * @param sort 排序，默认 0
     * @param img 图片地址
     * @param fid 父ID
     */
    public function save(Request $request){
        $uniacid = $request->header('uniacid');
        $params = $request->param();
        $params['uniacid'] = $uniacid;
        // 查看仓库代码是否重复
        $totol = Db::name('ims_zst_marketing_classify')->save($params);
        if($totol==1){
            return ErrJson::success_json('');
        }
        return ErrJson::error_json('没有修改参数');
    }

    /**
     * 删除
     * @param Request $request
     * @param $id 唯一ID
     */
    public function del(Request $request, $id){
        $uniacid = $request->header('uniacid');
        // 判断是否有子分类，有子分类不允许是删除
        $totol = Db::table('ims_zst_marketing_classify')
            ->where('uniacid',$uniacid)
            ->where('fid',$id)
            ->order('sort', 'desc')
            ->count();
        if($totol>0){
            return ErrJson::error_json('请先删除子分类');
        }

        // TODO 删除前先判断分类下有没有产品，没有产品才能删除
        $totol = Db::table('ims_zst_marketing_classify')
            ->where('id',$id)
            ->where('uniacid',$uniacid)
            ->delete();
        if($totol==1){
            return ErrJson::success_json('');
        }
        return ErrJson::error_json('删除失败');
    }

    /**
     * 获取详细信息
     * @param Request $request
     * @param $id 唯一ID
     */
    public function getInfoById(Request $request, $id){
        $uniacid = $request->header('uniacid');

        $data = Db::table('ims_zst_marketing_classify')
            ->where('id', $id)
            ->where('uniacid',$uniacid)
            ->findOrEmpty();
        if(empty($data)){
            return ErrJson::error_json('该条数据无法查询');
        }
        return ErrJson::success_json($data);
    }

    /**
     * 修改父亲级节点
     * @param Request $request
     * @param $id 唯一ID
     */
    public function updateFidById(Request $request, $id, $fid){
        $uniacid = $request->header('uniacid');

        Db::name('ims_zst_marketing_classify')
            ->where('id', $id)
            ->where('uniacid', $uniacid)
            ->update(['fid' => $fid]);
        return ErrJson::error_json('修改成功');

    }

}
